import unittest

def suma (x,y):
	res= x+y
	return res

def resta (x,y):
	aux1=False
	aux2=False
	res='Error'
	if type(x)!=str:
		aux1=True
	if type(y)!=str:
		aux2=True
	if aux1==True and aux2==True:	
		res=x-y
	return res

def multiplicacion (x,y):
	res= x*y
	return res

def divicion (x,y):
	aux1=False
	aux2=False
	res='Error'
	if type(x)!=str:
		aux1=True
	if type(y)!=str:
		aux2=True
	if aux1==True and aux2==True:	
		if y!=0:
			res=x/y
			return res
		else:
			return 'no se puede dividir por 0'
	else:
		return res

class TestSuma(unittest.TestCase):

    def test(self):
		self.assertEqual(suma(5,4),9)
		self.assertEqual(suma('hola ','que tal?'),'hola que tal?')
		self.assertEqual(suma(-5,4),-1)
		self.assertEqual(suma(5.8,4),9.8)
        
        
class TestResta(unittest.TestCase):

    def test(self):
        self.assertEqual(resta(5,4),1)
        self.assertEqual(resta(0,4),-4)
        self.assertEqual(resta(-5,-4),-1)
        self.assertEqual(resta('hola','a'),'Error')
        
class TestMultiplicacion(unittest.TestCase):

    def test(self):
        self.assertEqual(multiplicacion(5,4),20)
        self.assertEqual(multiplicacion(-5,4),-20)
        self.assertEqual(multiplicacion(-5.5,-4),22)
        self.assertEqual(multiplicacion('hola',3),'holaholahola')
        self.assertEqual(multiplicacion(5,0),0)

        
class TestDivicion(unittest.TestCase):

    def test(self):
        self.assertEqual(divicion(20,4),5)
        self.assertEqual(divicion(2.5,4),0.625)
        self.assertEqual(divicion(20,-4),-5)
        self.assertEqual(divicion('hola',4),'Error')
        self.assertEqual(divicion(20,0),'no se puede dividir por 0')        


if __name__ == '__main__':
    unittest.main()
